﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using CppIDE.Core;
using Application = CppIDE.Core.Application;

namespace CppIDE.UI
{

    /// <summary>
    /// Egy ablak az aktuális Configuration osztály szerkesztéséhez.
    /// </summary>
    public partial class ConfigurationForm : Form
    {
        
        /// <summary>
        /// Konstruktor, létrehoz egy új példányt.
        /// </summary>
        public ConfigurationForm()
        {
            InitializeComponent();
        }

        /// <summary>
        /// Betöltődéskor ez hívódik meg: beállítja a szükséges mezők értékét.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ConfigurationForm_Load(object sender, EventArgs e)
        {
            Application application = Application.getInstance();
            Configuration config = application.Config;
            gccPathTextBox.Text = config.GccPath;
        }

        /// <summary>
        /// Bezáráskor ez hívódik meg: elmenti a mezőket és menti a konfigurációt.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void ConfigurationForm_FormClosing(object sender, FormClosingEventArgs e)
        {
            Application application = Application.getInstance();
            Configuration config = application.Config;
            config.GccPath = gccPathTextBox.Text;
            application.saveConfig();
        }

        /// <summary>
        /// A tallózás gombra kattintáskor hívódik meg: megjelenít egy könyvtárválasztó
        /// dialógusablakot, ha a felhasználó kiválaszt egy könyvtárat, az elmentjük
        /// a megfelelő mezőben.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void gccPathButton_Click(object sender, EventArgs e)
        {
            FolderBrowserDialog dialog = new FolderBrowserDialog();
            dialog.SelectedPath = gccPathTextBox.Text;
            DialogResult result = dialog.ShowDialog(this);
            if (result == DialogResult.OK)
            {
                gccPathTextBox.Text = dialog.SelectedPath;
            }
        }

    }

}
